package com.jwd.avmanager.client;

import com.jwd.avmanager.util.DebugLogger;
import com.jwd.avmanager.util.MD5Util;

import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;

public class text {
    public static void main(String[] args) throws UnsupportedEncodingException {
//        short a = (short) 0xFFFF;
//        DebugLogger.debug(a);
//        byte[] b = new byte[]{54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//        DebugLogger.debug(Arrays.toString(b));
//        DebugLogger.debug(new String(b).trim());
//        MsgPacket msgPacket = MessageFactory.setGPS(123);
//        byte[] body = msgPacket.getBody();
//        DebugLogger.debug("GPS上传");
//        byte[] byteNowSec = new byte[4];                //从1970-01-01 00:00:00 开始的秒数
//        byte[] byteNowUsec = new byte[4];               //毫秒数
//        byte[] byteUsAngle = new byte[2];			    //夹角，扩大100倍
//        byte[] byteUsSpeed = new byte[2];			    //速度扩大了100倍,0xFFFF表示无效(千米/小时)
//        byte[] byteUcLongitudeDegree = new byte[2];	    //经度值之度
//        byte[] byteUcLongitudeScore = new byte[2];	    //经度值之分
//        byte[] byteUcLatitudeDegree = new byte[2];	    //纬度值之度
//        byte[] byteUcLatitudeScore = new byte[2];	    //纬度值之分
//        byte[] byteUnLongitudeSecond = new byte[4];     //经纬度之秒,扩大了10的7次方倍
//        byte[] byteUnLatitudeSecond = new byte[4];	    //纬度值值秒扩大了10的7次方倍
//        byte[] byteUsHigh = new byte[2]; 			    //海拔高度0xFFFF表示无效
//        byte[] byteUsTempera = new byte[2];			    //温度0xFFFF表示无效(摄氏度)
//        byte[] byteUcSatelliteNumber = new byte[2];	    //卫星数量0xFF表示无效
//        byte[] byteUcStatus = new byte[2];              //Bit0:GPS数据有效性(0:无效,1:有效)
//                                                        //Bit1:经度方向(0:东经,1:西经)
//                                                        //Bit2:纬度方向(0:南纬,1:北纬)
//                                                        //Bit3~Bit7:保留
//                                                        //注意，拷贝的时候，不能按照实际长度分界，要按照协议来
//        System.arraycopy(body, 0, byteNowSec, 0, byteNowSec.length);
//        System.arraycopy(body, 4, byteNowUsec, 0, byteNowUsec.length);
//        System.arraycopy(body, 8, byteUsAngle, 0, byteUsAngle.length);
//        System.arraycopy(body, 10, byteUsSpeed, 0, byteUsSpeed.length);
//        System.arraycopy(body, 12, byteUcLongitudeDegree, 0, byteUcLongitudeDegree.length);
//        System.arraycopy(body, 14, byteUcLongitudeScore, 0, byteUcLongitudeScore.length);
//        System.arraycopy(body, 16, byteUcLatitudeDegree, 0, byteUcLatitudeDegree.length);
//        System.arraycopy(body, 18, byteUcLatitudeScore, 0, byteUcLatitudeScore.length);
//        System.arraycopy(body, 20, byteUnLongitudeSecond, 0, byteUnLongitudeSecond.length);
//        System.arraycopy(body, 24, byteUnLatitudeSecond, 0, byteUnLatitudeSecond.length);
//        System.arraycopy(body, 28, byteUsHigh, 0, byteUsHigh.length);
//        System.arraycopy(body, 30, byteUsTempera, 0, byteUsTempera.length);
//        System.arraycopy(body, 32, byteUcSatelliteNumber, 0, byteUcSatelliteNumber.length);
//        System.arraycopy(body, 34, byteUcStatus, 0, byteUcStatus.length);
//
//        DebugLogger.debug(ByteUtil.bytesToInt(byteNowSec));
//        DebugLogger.debug(ByteUtil.bytesToInt(byteNowUsec));
//        DebugLogger.debug(ByteUtil.bytesToShort(byteUsAngle));
//        DebugLogger.debug(ByteUtil.bytesToShort(byteUsSpeed));
//        DebugLogger.debug(ByteUtil.byteToChar(byteUcLongitudeDegree));
//        DebugLogger.debug(ByteUtil.byteToChar(byteUcLongitudeScore));
//        DebugLogger.debug(ByteUtil.byteToChar(byteUcLatitudeDegree));
//        DebugLogger.debug(ByteUtil.byteToChar(byteUcLatitudeScore));
//        DebugLogger.debug(ByteUtil.bytesToInt(byteUnLongitudeSecond));
//        DebugLogger.debug(ByteUtil.bytesToInt(byteUnLatitudeSecond));
//        DebugLogger.debug(ByteUtil.bytesToShort(byteUsHigh));
//        DebugLogger.debug(ByteUtil.bytesToShort(byteUsTempera));
//        DebugLogger.debug(ByteUtil.byteToChar(byteUcSatelliteNumber));
//        DebugLogger.debug(ByteUtil.byteToChar(byteUcStatus));
//        char[] a = new char[]{'1','2','3','4','5','6','7','8','9','0','q','w','e','r','t','y','u','i','o','s','k'};
//
//
//        byte[] b = new String(a).getBytes("UTF-8");
//        char[] c = new String(b).toCharArray();
//        for (char c1 : c) {
//            DebugLogger.debug(c1);
//        }

        String md5Str = MD5Util.getMD5Str("123456");
        DebugLogger.info(md5Str);

    }

    private static byte[] getBytes(char[] chars) {
        Charset cs = Charset.forName("UTF-8");
        CharBuffer cb = CharBuffer.allocate(chars.length);
        cb.put(chars);
        cb.flip();
        ByteBuffer bb = cs.encode(cb);
        return bb.array();
    }

    private static char[] getChars(byte[] bytes) {
        Charset cs = Charset.forName("UTF-8");
        ByteBuffer bb = ByteBuffer.allocate(bytes.length);
        bb.put(bytes);
        bb.flip();
        CharBuffer cb = cs.decode(bb);
        return cb.array();
    }
}
